Repo auto make wiki page - ☆Wiki Sandbox - НТЦ 'Комплексные Системы'

Csit.Delta.ClientUtil.EncodingDesc

Описание кодирования значения

Синтаксис строки описания кодировки

<EncodingDesc> ::= <RuntimeType> [ "-" <Style> [ "-" <Size> [ "-" <ByteOrderAbbrev> ] ] ]
<RuntimeType> ::= type_name
<Style> ::= encoding_style
<Size> ::= int
<ByteOrderAbbrev> ::= D | BE | LE | BER | LER
Строка описания содержит:
  • название типа данных RuntimeType
  • стиль кодирования значения Style
  • размер значения в байтах
  • порядок байт при кодировании значения ByteOrder в виде аббревиатуры

Если размер не указан, то он определяется автоматически (при возможности).

Обязательным для указания является только RuntimeType.

Например:

UInt32
целое число 32 бита без знака

Double-LE
число с плавающей точкой двойной точности с кодированием младшим байтом по старшему адресу

DateTime-UnixTime
дата и время в формате Unix

UInteger-Bcd-3-BE
целое число со знаком, кодируемое бинарно-десятичной кодировкой с младшим байтом по младшим адресу

RuntimeType

  • Null
    Тип не указан.
     
  • _First
    Начало региона определенных значений.
     
  • _NumericTypeRangeFirst
    Первый числовой тип.
     
  • Numeric
    Любой числовой тип.
     
  • _IntegerTypeRangeFirst
    Первый целочисленный тип.
     
  • Interger
    Любой целочисленный тип.
     
  • UInterger
    Любой целочисленный тип без знака.
     
  • Byte
    Одно-байтовое целое число без знака.
     
  • UInt16
    Двух-байтовое целое число без знака.
     
  • UInt32
    Четырех-байтовое целое число без знака.
     
  • UInt64
    Восьми-байтовое целое число без знака.
     
  • SInterger
    Любой целочисленный тип со знаком.
     
  • SByte
    Одно-байтовое целое число со знаком.
     
  • Int16
    Двух-байтовое целое число со знаком.
     
  • Int32
    Четырех-байтовое целое число со знаком.
     
  • Int64
    Восьми-байтовое целое число со знаком.
     
  • _IntegerTypeRangeLast
    Последний целочисленный тип.
     
  • _FloatTypeRangeFirst
    Первый тип с плавающей запятой.
     
  • FloatNumber
    Любой числовой тип с плавоющей точкой.
     
  • Single
    Вещественное число с плавоющей точкой одинарной точности (4 байта).
     
  • Float
    Синоним для Single. Вещественное число с плавоющей точкой одинарной точности (4 байта).
     
  • Double
    Вещественное число с плавоющей точкой двойной точности (8 байта).
     
  • Decimal
    Десятичное число с плавающей запятой повышенной точности (16 байт).
     
  • _FloatTypeRangeLast
    Последний тип с плавающей запятой.
     
  • _NumericTypeRangeLast
    Последний числовой тип.
     
  • Bit
    Один бит.
     
  • Boolean
    Логическая величина.
     
  • DateTime
    Дата и время.
     
  • TimeSpan
    Временной интервал.
     
  • Guid
    Идентификатор Guid.
     
  • Char
    Один текстовый символ.
     
  • String
    Строка текстовых символов.
     
  • Binary
    Массив байт.
     

EncodingStyle

  • Normal
    Кодирование по умолчанию, т.е. как принято в .NET.
     
  • Float24
    Как float, но из 3-х байт. Младший байт стандартного Float32
    отбрасывается (это наим. значащие биты мантиссы).
     
  • IntFloat
    8 байт. Сначала Int32 с целой частью, затем float с дробной.
     
  • FloatInt
    8 байт. Сначала float с дробной частью, затем Int32 с целой.
     
  • M4Float
    Как обычный float, но знаковый бит находится в мантисе, а не перед показателем степени.
     
  • IntM4Float
    8 байт. Снчала Int32 в качестве целой части, за ним M4Float в качестве дробной части.
     
  • FracTruncInt
    8 байт. Сначала Int32 с дробной частью десятичного числа. Затем Int32 с целой частью.
     
  • TruncFracInt
    8 байт. Сначала Int32 с целой частью десятичного числа. Затем Int32 с дробной частью.
     
  • Int24
    Как обычное число, но представленное 3 байтами.
     
  • Bcd
    Двоично-десятичное кодирование.
     
  • UnixTime
    Int32, в котором записано количество секунд с 01.01.1970.
     
  • ByteTimeSecYear
    Дата/время в 6 байтах: ss, mm, HH, dd, MM, yy. Год от 2000.
     
  • ByteTimeDaySec
    Дата/время в 6 байтах: dd, MM, yy, HH, mm, ss. Год от 2000.
     
  • ByteTimeHourYear
    Дата/время в 4 байтах: HH, dd, MM, yy. Год от 2000.
     
  • ByteTimeDayYear
    Дата/время в 3 байтах: dd, MM, yy. Год от 2000.
     
  • KM5DateTime
    Дата/время в 8 байтах, закодированные в формате приборов КМ-5.
     
  • TekonDate
    Дата в формате Тэкон.
    Четыре байта с двоично-десятичным представлением даты: день недели (00 понедельник, 06 воскресенье), дата от 01 до 31, месяц от 01 до 12, младшие цифры года от 00 до 99.
     
  • TekonTime
    Время в формате Тэкон.
    Четыре байта с двоично-десятичным представлением времени: пустой, секунды от 00 до 59, минуты от 00 до 59, часы от 00 до 23.
     
  • LogikaM4DateTime
    Дата/время в 6 байтах, закодированные в формате прибора LogikaM4.
     
  • RocLinkTLP
    Адрес параметра (Int32), закодированный в TLP-формате прибора RocLink.
     
  • AsciiString
    Текст в кодировке ASCII.
     

ByteOrder

  • Default
    Порядок байт не установлен, использовать порядок байт по умолчанию.
     
  • BigEndian
    Младший байт - первый, старший - последний. Как принято в компьютерах.
    78 56 34 12
     
  • LittleEndian
    Младший байт - последний, старший первый.
    12 34 56 78
     
  • BigEndianReverseWords
    Как BigEndian, но пары байт следуют в обратном порядке.
    34 12 78 56
     
  • LittleEndianReverseWords
    Как LittleEndian, но пары байт следуют в обратном порядке.
    56 78 12 34